home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2000 #5
/
Amiga Plus CD - 2000 - No. 5.iso
/
Tools
/
Misc
/
FLM
/
otherfiles
/
deutsch
/
ARexx
/
trans_auto.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
2000-01-01
|
3KB
|
108 lines
/*
automatischer Übersetzung-Script über Shell
(c) 1996 Denis Unger (16.07.1996)
Dieser Script übersetzt die Datei, welche als Argument angegeben wird.
Die Übersetzung wird in die angegebene Zieldatei geschrieben.
Aufruf: rx trans_auto.rexx <Quelle> <Ziel> <Sprache>
z.B.: rx trans_auto.rexx text1.txt text2.txt englisch
*/
/* Nun kommen persönliche Einstellungen, welche evtl. geändert werden müssen ...*/
/********************************************************************************/
FLM = 'FLM:FLM' /* Programm FLM */
/********************************************************************************/
arguments=words(Arg(1)) /* Anzahl der übergebene Argumente */
if arguments<4 then do
say "Falscher Aufruf !!!"
say "rx trans_auto.rexx <Quell-Datei> <Ziel-Datei> <Sprache> [<Modus>]"
exit
end
quelle=word(arg(1),1) /* Quelle */
ziel=word(arg(1),2) /* Ziel*/
sprache=word(arg(1),3) /*Sprache*/
if word(arg(1),4)="2" then do
mode=2
end
else do
mode=1
end
Options Results
gestartet = 0
if ~show('PORTS','FLM') then do /* FLM schon gestartet ? */
address command 'run >NIL: ' || FLM /* starte FLM */
address command "SYS:Rexxc/WaitForPort FLM"
gestartet = 1 /* FLM wird nach Übersetzung beendet */
end
address FLM SETLANGUAGE sprache
succ=OPEN(source,quelle,'R')
if succ=0 then do
say "Fehler beim öffnen der Quell-Datei"
exit
end
succ=OPEN(dest,ziel,'W')
if succ=0 then do
say "Fehler beim öffnen der Ziel-Datei"
CLOSE(source)
exit
end
do forever
if EOF(source) then leave /* Falls Quell-Datei am Ende -> Schleife verlassen */
text=readln(source) /* Nächste Zeile lesen */
do i=1 to words(text)
wort1 = word(text,i) /* einzelnen Wörter holen */
wort2= word(text,i+1)
if mode=2 then wort=wort1 || " " || wort2
if mode=1 then wort=wort1
address FLM lookword wort /* Wort suchen */
address FLM found /* steht Wort im Wörterbuch ? */
gefunden = RESULT
if mode=2 & gefunden>0 then do
wort=wort1
address FLM lookword wort
address FLM found
gefunden = RESULT
end
else do
if mode=2 then i=i+1
end
if gefunden = 0 then do /* Wort wurde gefunden */
address FLM takeword
WriteCh(dest,RESULT) /* 1. Übersetzung schreiben */
end
else do /* Wort wurde nicht gefunden */
WriteCh(dest,"[" || wort || "]") /* Original-Wort schreiben*/
end
WriteCh(dest," ") /* Leerzeichen zwischen den Wörtern */
end
WriteLn(dest, "") /* Enter schreiben*/
end
CLOSE(source) /* Quell-Datei schließen */
CLOSE(dest) /* Ziel-Datei schließen */
if gestartet = 1 then do
/* wurde FLM durch das Script gestartet, so wird es nun auch wieder beendet */
address FLM QUIT
end
exit